ICTSC2018 本戦 問題解説: なんでピアが張れないの!?
問題文
通信事業者である「Ictsc Fiber」では最近、MP‐BGPの検証を行っています。 今日も、Loopbackを用いてピアを張り、ルート共有を行う検証を同僚が行っていました。 ですが、上手くピアを張ることができずあなたに助けを求めに来ました。 原因を究明して解決し、正常にピアを張ってください。またピアを張った後に、図に示す「1841-A」の「Loopback 1」のルート共有を行ってください。
トラブルの概要
MP-BGPの設定を行い、Loopback間でピアを張ろうとしたが上手く張れません。以下の図に示す「C1941」と「1841-A」に設定を追記し、ピアを正常に張れるようにしてください。 また、1841-Aの「Loopback 1」のルート情報を共有し、C1941から1841-Aの「Loopback 1」へ疎通可能にしてください。
解説
今回の問題では、MP-BGPと呼ばれる技術を用いてルータ間でのIPv6ルートの共有を行おうとしています。 MP-BGPとは正式名称で「Multi Protocol BGP」と呼ばれ、Ipv4以外のプロトコルに対応しています。そのため、IPv6プロトコルを使用することができます。MP-BGPでも、ピアを確立しルート共有を行うという順番は変わりません。
MP-BGPでEBGPピアを張る際には、BGPと同じ様にEBGP Neighborの設定が必要になります。また、BGPと違ってaddress familyと呼ばれる設定をする必要があります。今回は以下の設定がそれぞれの機器に行われていました。
- C1941
router bgp 1 no bgp default ipv4-unicast bgp router-id 1.1.1.1 neighbor fd00:173::1 remote-as 2 address-family ipv6 unicast neighbor fd00:173::1 activate
- 1841-A
router bgp 2 no bgp default ipv4-unicast bgp router-id 2.2.2.2 neighbor fd00:172::1 remote-as 1 address-family ipv6 unicast neighbor fd00:172::1 activate物理インタフェースを用いるのであれば、これらの設定でピアを張ることができます。
ですが、今回の問題はLoopbackを用いてピアを張る必要があるため、追加で設定を加える必要があります。 実際に追加する必要がある設定は以下になります。
- C1941
ipv6 route fd00:173::/64 fd00:171::2 neighbor fd00:173::1 update-source loopback 0 neighbor fd00:173::1 ebgp-multihop 2
- 1841-A
ipv6 route fd00:172::/64 fd00:171::1 neighbor fd00:172::1 update-source loopback 0 neighbor fd00:172::1 ebgp-multihop 2各機器に設定する項目は同じです。これらの設定を加えることでLoopback間でピアを張ることができます。 追加設定の内容について説明していきます。
ipv6 route ipv6_network_address nexthop
この設定は、IPv6でのスタティックルートを追加するものです。EBGPピアを張る際は、ピアの宛先のアドレスに疎通性がないと張ることが出来ません。初期の設定のままでは、疎通性がないためスタティックルートを追加する必要があります。
neighbor ipv6_network_address update-source loopback 0
ピアを張る際に送るメッセージを送る送信元は、デフォルトでは物理インターフェースに指定されているためLoopback 0 間でピアを張ることができません。そのため、送信元をLoopback 0に指定する必要があります。
neighbor ipv6_network_address ebgp-multihop 2
EBGPピアを張る際の送るメッセージのTTL(Time to Live)はデフォルトで「1」に設定されています。そのため、Loopbackを用いてピアを張る場合、TTLが1より大きくなってしまうためパケットが捨てられてしまいメッセージが宛先に届きません。そのため、この設定によってTTLの数を増やす必要があります。因みに、最後の値の部分を指定しないと、「255」に設定されます。
以上の設定によって、ピアを張ることができます。
さらに、今回の問題では、ピアを張ることが出来たら1841-Aの「Loopback 1」のネットワークをMP-BGPによって共有を行うという指定がありました。それを踏まえてルート共有を行う設定は以下のとおりです。
- 1841-A
router bgp 2 address-family ipv6 unicast network fd00:174::/64この設定を行うとMP-BGPでのルート共有が行われます。
回答例
- C1941
ipv6 route fd00:173::/64 fd00:171::2 router bgp 1 neighbor fd00:173::1 update-source loopback 0 neighbor fd00:173::1 ebgp-multihop 2
- 1841-A
ipv6 route fd00:172::/64 fd00:171::1 router bgp 2 neighbor fd00:172::1 update-source loopback 0 neighbor fd00:172::1 ebgp-multihop 2 address-family ipv6 unicast network fd00:174::/64採点基準
- 各ルータのLoopback 0に向けてIPv6でのstatic routeが設定されている(30%)
- neighborを張る送信元をそれぞれの Loopback 0に設定した(60%)
- ebgp-multihopを2以上に設定している(90%)
- BGPによって受け取ったルート情報でR1からR2のloopback 1に疎通性が取れる(100%)